Development of a proof assistant for Dedukti

نویسنده

  • Frédéric Blanqui
چکیده

Dedukti [11] is a formal proof checker based on a logical framework called the λΠ-calculus modulo, which is an extension of the simply-typed lambdacalculus with dependent types (e.g. lists of size n) and an equivalence relation on types generated by user-defined rewrite rules (like in Agda or Haskell). Proofs obtained by some proof assistants (e.g. HOL, Coq, Matita) can be checked in Dedukti by encoding function definitions and axioms by rewrite rules [8, 6, 5]. But, currently, no proof assistant fully uses all the capabilities of Dedukti, which allows a priori arbitrary user-defined rewrite rules. This is for instance necessary if one wants to ease the use of dependent types and be able to define types for representing simplicial sets of arbitrary dimensions, ∞-categories or models of Voevodsky’s homotopy type theory. The goal of this internship is to develop a front-end, that is, a proof assistant, for Dedukti that takes advantage of defining arbitrary rewrite rules for defining functions and types. Developing a proof assistant includes to develop a language and interpretation tool for building proofs interactively. A key feature to scale up, especially with dependent and polymorphic types, is to allow the user to write down terms with missing information (e.g. the type of the elements of a list) and provide an inference engine for deducing it. To start with, the student could adapt the refinement engine of Matita [3]. Such a refinement engine is based on a unification algorithm. To start with, the student could implement a simple first-order unification algorithm. A refinement engine also provides the basis on which to implement basic tactics. For instance, applying the logical introduction rule for implication consists in refining the current proof by the incomplete term λx :?.?. The student will implement a basic set of such tactics. Then, several directions can be considered:

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Translating HOL to Dedukti

Dedukti is a logical framework based on the λΠ-calculus modulo rewriting, which extends the λΠcalculus with rewrite rules. In this paper, we show how to translate the proofs of a family of HOL proof assistants to Dedukti. The translation preserves binding, typing, and reduction. We implemented this translation in an automated tool and used it to successfully translate the OpenTheory standard li...

متن کامل

Development of a termination checker for Dedukti

Dedukti [12] is a formal proof checker based on a logical framework called the λΠ-calculus modulo, which is an extension of the simply-typed lambdacalculus with dependent types (e.g. lists of size n) and an equivalence relation on types generated by user-defined rewrite rules (like in Agda or Haskell). Proofs generated by some automated theorem provers (e.g. Zenon, iProver) or proof assistants ...

متن کامل

Mixing HOL and Coq in Dedukti (Extended Abstract)

We use Dedukti as a logical framework for interoperability. We use automated tools to translate different developments made in HOL and in Coq to Dedukti, and we combine them to prove new results. We illustrate our approach with a concrete example where we instantiate a sorting algorithm written in Coq with the natural numbers of HOL.

متن کامل

Termination checking in Dedukti

Dedukti is a formal proof checker based on a logical framework called the λΠ-calculus modulo, which is an extension of the simply-typed lambda-calculus with dependent types (e.g. vectors, matrices) and an equivalence relation on types generated by the user-defined rewrite rules. Proofs generated by some automated theorem provers (e.g. Zenon, iProver) or proof assistants (e.g. HOL, Coq, Matita) ...

متن کامل

Dedukti: a Logical Framework based on the λΠ-Calculus Modulo Theory

Dedukti is a Logical Framework based on the λΠ-Calculus Modulo Theory. We show that many theories can be expressed in Dedukti: constructive and classical predicate logic, Simple type theory, programming languages, Pure type systems, the Calculus of inductive constructions with universes, etc. and that permits to used it to check large libraries of proofs developed in other proof systems: Zenon,...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2015